﻿
using System;
using System.Runtime.Serialization;
using V82;
using V82.Перечисления;//Ссылка;
namespace V82.Перечисления//Ссылка
{
	[DataContract]
	public enum ФорматыДатаВремениЗначенияРазряда
	{
		[NonSerialized]
		ПустаяСсылка = - 1,
		[EnumMember(Value = "{\"Ссылка\":\"3573c37d-bc7d-4106-a093-a2c9b8ebc042\", \"Представление\":\"Дата\"}")]
		Дата = 0,
		[EnumMember(Value = "{\"Ссылка\":\"f9edd561-09b1-41dd-b6ac-7039de7a2802\", \"Представление\":\"ДатаВремя\"}")]
		ДатаВремя = 1,//Дата / время
		[EnumMember(Value = "{\"Ссылка\":\"893ba69c-e2cd-4713-9f74-2e210550200d\", \"Представление\":\"Время\"}")]
		Время = 2,
		[EnumMember(Value = "{\"Ссылка\":\"28fc7b3d-eda7-480a-85c6-854aee856c83\", \"Представление\":\"Минута\"}")]
		Минута = 3,
		[EnumMember(Value = "{\"Ссылка\":\"18be2702-48da-4dfe-ae32-cdffbc99049a\", \"Представление\":\"Час\"}")]
		Час = 4,
		[EnumMember(Value = "{\"Ссылка\":\"d0401444-1b97-486e-becf-0d61ac464ac8\", \"Представление\":\"ДеньНедели\"}")]
		ДеньНедели = 5,//День недели
		[EnumMember(Value = "{\"Ссылка\":\"74ab50d3-a45b-4743-ac75-e34921e191e3\", \"Представление\":\"ДеньМесяца\"}")]
		ДеньМесяца = 6,//День месяца
		[EnumMember(Value = "{\"Ссылка\":\"9717bc19-ab17-497d-bc2d-cd1a88b44ec0\", \"Представление\":\"ДеньГода\"}")]
		ДеньГода = 7,//День года
		[EnumMember(Value = "{\"Ссылка\":\"b92e6396-3bf9-4255-8129-859e68a80c4e\", \"Представление\":\"Месяц\"}")]
		Месяц = 8,
		[EnumMember(Value = "{\"Ссылка\":\"e9381f22-7d15-40c6-9855-085095a12eed\", \"Представление\":\"Квартал\"}")]
		Квартал = 9,
		[EnumMember(Value = "{\"Ссылка\":\"a04fd743-a76d-4597-bf35-e5039480bdd6\", \"Представление\":\"Год\"}")]
		Год = 10,
	}
	public static partial class ФорматыДатаВремениЗначенияРазряда_Значения//:ПеречислениеСсылка
	{
		public static readonly Guid Дата = new Guid("c9a293a0-ebb8-42c0-4106-bc7d3573c37d");
		public static readonly Guid ДатаВремя = new Guid("3970acb6-7ade-0228-41dd-09b1f9edd561");//Дата / время
		public static readonly Guid Время = new Guid("212e749f-5005-0d20-4713-e2cd893ba69c");
		public static readonly Guid Минута = new Guid("4a85c685-85ee-836c-480a-eda728fc7b3d");
		public static readonly Guid Час = new Guid("ffcd32ae-99bc-9a04-4dfe-48da18be2702");
		public static readonly Guid ДеньНедели = new Guid("610dcfbe-46ac-c84a-486e-1b97d0401444");//День недели
		public static readonly Guid ДеньМесяца = new Guid("49e375ac-e121-e391-4743-a45b74ab50d3");//День месяца
		public static readonly Guid ДеньГода = new Guid("1acd2dbc-b488-c04e-497d-ab179717bc19");//День года
		public static readonly Guid Месяц = new Guid("9e852981-a868-4e0c-4255-3bf9b92e6396");
		public static readonly Guid Квартал = new Guid("50085598-a195-ed2e-40c6-7d15e9381f22");
		public static readonly Guid Год = new Guid("03e535bf-8094-d6bd-4597-a76da04fd743");
		public static ФорматыДатаВремениЗначенияРазряда Получить(this ФорматыДатаВремениЗначенияРазряда Значение, byte[] Ссылка)
		{
			return Получить(Значение, new Guid(Ссылка));
		}
		public static ФорматыДатаВремениЗначенияРазряда Получить(this ФорматыДатаВремениЗначенияРазряда Значение, Guid Ссылка)
		{
			if(Ссылка == Дата)
			{
				return ФорматыДатаВремениЗначенияРазряда.Дата;
			}
			else if(Ссылка == ДатаВремя)
			{
				return ФорматыДатаВремениЗначенияРазряда.ДатаВремя;
			}
			else if(Ссылка == Время)
			{
				return ФорматыДатаВремениЗначенияРазряда.Время;
			}
			else if(Ссылка == Минута)
			{
				return ФорматыДатаВремениЗначенияРазряда.Минута;
			}
			else if(Ссылка == Час)
			{
				return ФорматыДатаВремениЗначенияРазряда.Час;
			}
			else if(Ссылка == ДеньНедели)
			{
				return ФорматыДатаВремениЗначенияРазряда.ДеньНедели;
			}
			else if(Ссылка == ДеньМесяца)
			{
				return ФорматыДатаВремениЗначенияРазряда.ДеньМесяца;
			}
			else if(Ссылка == ДеньГода)
			{
				return ФорматыДатаВремениЗначенияРазряда.ДеньГода;
			}
			else if(Ссылка == Месяц)
			{
				return ФорматыДатаВремениЗначенияРазряда.Месяц;
			}
			else if(Ссылка == Квартал)
			{
				return ФорматыДатаВремениЗначенияРазряда.Квартал;
			}
			else if(Ссылка == Год)
			{
				return ФорматыДатаВремениЗначенияРазряда.Год;
			}
			return ФорматыДатаВремениЗначенияРазряда.ПустаяСсылка;
		}
		public static byte[] Ключ(this ФорматыДатаВремениЗначенияРазряда Значение)
		{
			return Ссылка(Значение).ToByteArray();
		}
		public static Guid Ссылка(this ФорматыДатаВремениЗначенияРазряда Значение)
		{
			switch (Значение)
			{
				case ФорматыДатаВремениЗначенияРазряда.Дата: return Дата;
				case ФорматыДатаВремениЗначенияРазряда.ДатаВремя: return ДатаВремя;
				case ФорматыДатаВремениЗначенияРазряда.Время: return Время;
				case ФорматыДатаВремениЗначенияРазряда.Минута: return Минута;
				case ФорматыДатаВремениЗначенияРазряда.Час: return Час;
				case ФорматыДатаВремениЗначенияРазряда.ДеньНедели: return ДеньНедели;
				case ФорматыДатаВремениЗначенияРазряда.ДеньМесяца: return ДеньМесяца;
				case ФорматыДатаВремениЗначенияРазряда.ДеньГода: return ДеньГода;
				case ФорматыДатаВремениЗначенияРазряда.Месяц: return Месяц;
				case ФорматыДатаВремениЗначенияРазряда.Квартал: return Квартал;
				case ФорматыДатаВремениЗначенияРазряда.Год: return Год;
			}
			return Guid.Empty;
		}
	}
}